﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BusinessLayer;
using Common;
using BusinessLayer;
using BoletoElectronicoDesktop.EfectuarCompra;
using BoletoElectronicoDesktop.PagoEmpresas;

namespace BoletoElectronicoDesktop.AbmBeneficiarios
{
    /*Asi estaba antes
     
     
#if(!DEBUG)
public partial class BuscadorBeneficiario : FormAddModify
{

    public BuscadorBeneficiario(Funcionalidad Use): base(Use)
    {
        InitializeComponent();
    }
    public BuscadorBeneficiario(int Id, Funcionalidad Use)
        : base(Id, Use)
    {
        InitializeComponent();
    }
#else
    public partial class BuscadorBeneficiario : Form
    {
        public BuscadorBeneficiario(Util.Funcionalidad Use )
        {
            InitializeComponent();
            this.VengoDeCompra = true;
        }
        public BuscadorBeneficiario(Util.Funcionalidad Use, bool VengoDeCompra)
        {
            InitializeComponent();
            this.VengoDeCompra = VengoDeCompra;
        }
#endif
 
     
     */

    public partial class BuscadorBeneficiario : FormAddModify
    {
        public BuscadorBeneficiario(Util.Funcionalidad Use)
            : base(Use)
        {
            InitializeComponent();
            this.VengoDeCompra = true;
        }
        public BuscadorBeneficiario(Util.Funcionalidad Use, bool VengoDeCompra)
            : base(Use)
        {
            InitializeComponent();
            this.VengoDeCompra = VengoDeCompra;
        }

        public bool VengoDeCompra { get; set; }
        private int selectedId;
        public int SelectedId
        {
            get
            {
                try
                {

                    if ((dsBoleto.BeneficiarioRow)((DataRowView)(dgViewBeneficiarios.CurrentRow.DataBoundItem)).Row != null)
                    {
                        selectedId = ((dsBoleto.BeneficiarioRow)((DataRowView)(dgViewBeneficiarios.CurrentRow.DataBoundItem)).Row).IdBeneficiario;
                    }
                }
                catch (Exception)
                {
                    selectedId = 0;
                }
                return selectedId;
            }
            set
            { selectedId = value; }
        }

        private void BuscadorBeneficiario_Load(object sender, EventArgs e)
        {
            cargarCbRubro();
        }
        private void cargarCbRubro()
        {
            cbRubros.DataSource = BizRubro.getRubros();
            cbRubros.SelectedItem = null;
        }

        private void btnBuscarPN_Click(object sender, EventArgs e)
        {
            buscar();
        }


        public void buscar()
        {
            int numero = 0;
            if (!string.IsNullOrEmpty(txtNumero.Text))
                int.TryParse(txtNumero.Text, out numero);
            
            int piso = 0;
            if (!string.IsNullOrEmpty(txtPiso.Text))
                int.TryParse(txtPiso.Text, out piso);

            int idRubro = 0;
            if (cbRubros.SelectedItem != null)
                idRubro = int.Parse(cbRubros.SelectedValue.ToString());

            dsBoleto.BeneficiarioDataTable dtBeneficiario = BizBeneficiario.getBeneficiarios(txtRazonSocial.Text, idRubro, 0, txtCalle.Text, numero, piso, txtDepto.Text, 1);
            if (dtBeneficiario.Count != 0)
            {
                dgViewBeneficiarios.DataSource = dtBeneficiario;
            }
            else
            {
                MessageBox.Show("No existen registros para el criterio de busqueda ingresado.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btSeleccionar_Click(object sender, EventArgs e)
        {
            FormPrincipal form = ((FormPrincipal)this.MdiParent);
            if (VengoDeCompra)
            {
                
            if (form.MdiChildren.Any(f => f is frmEfectuarCompra))
            {
                frmEfectuarCompra frm = (frmEfectuarCompra)form.MdiChildren.First(f => f is frmEfectuarCompra);
                frm.Beneficiario = (dsBoleto.BeneficiarioRow)((DataRowView)(dgViewBeneficiarios.CurrentRow.DataBoundItem)).Row;
                frm.setBeneficiario();
                Close();
            }
            }
            else
            {
                if (form.MdiChildren.Any(f => f is FormPago))
                {
                    FormPago frm = (FormPago)form.MdiChildren.First(f => f is FormPago);
                    frm.SelectedBnf = ((dsBoleto.BeneficiarioRow)((DataRowView)(dgViewBeneficiarios.CurrentRow.DataBoundItem)).Row).IdBeneficiario;
                    Close();
                }
            }       
        }

        private void btCancelar_Click(object sender, EventArgs e)
        {
            Close();
        }

        
    }
}
